Skip to content

RAG 基础概念

1. 大白话:这是什么?解决什么痛点?

RAG(Retrieval-Augmented Generation,检索增强生成)你可以理解成:让大模型先查资料,再回答问题。如果只让 LLM 裸答,它只能靠训练时记住的参数知识来“闭卷作答”,一旦遇到企业私有知识、最新规则、长文档细节,就很容易出现两类问题:一类是不知道还硬答,产生幻觉;另一类是知道得不够新、不够细,回答不可信

所以 RAG 的核心价值不是“让模型更聪明”,而是给模型补外部证据。它解决的几个高频痛点很明确:

  • 知识会过期:模型训练有截止时间,但业务规则、售后政策、FAQ、产品文档天天在变。
  • 私有数据不能进预训练:企业知识库、内部 SOP、订单规则、退款流程不能指望模型天然知道。
  • 回答要能追溯:很多场景不是只要一个“像样的答案”,而是要知道答案依据哪段文档、哪条规则。
  • 长文档不能整本硬塞:把几十万字知识库一次性塞进上下文,成本高、延迟高,还容易出现 Lost in the Middle,模型反而抓不住重点。

一句话总结:RAG 本质上是把“模型直觉回答”改造成“基于证据回答”

2. 底层机制与高频考点

典型链路

RAG 在线上一般不是一句“向量检索”就结束了,而是一条完整的证据加工链路:

  1. 离线建索引:先把文档解析、清洗、切块(chunking),再做 embedding,连同标题、页码、更新时间、业务标签、权限信息等 metadata 一起存到向量库或检索系统里。
  2. 召回(Recall):用户提问后,先用向量检索、BM25 或混合检索粗召回一批候选片段。向量检索擅长找语义相近,BM25 擅长错误码、SKU、专有名词这类精确词匹配,所以生产里经常会做 Hybrid Search。
  3. 重排(Rerank):粗召回只能说明“像不像”,不代表“能不能回答”。因此通常会再用 reranker 对候选片段重新打分,把真正能回答问题的证据顶到前面。
    1. 上下文构建(Context Engineering):把高分片段去重、压缩、排序,明确来源和版本,再拼进 prompt,要求模型“只能基于证据回答,证据不足就拒答”。
  4. 生成(Generation):最后才交给 LLM 生成自然语言答案,并尽量附带引用。

高频对比考点

  • RAG vs 微调:RAG 解决“模型不知道最新/私有知识”的问题;微调更适合解决“模型说话风格、输出格式、行为习惯”的问题。知识经常变,优先 RAG;行为要稳定,才考虑微调。
  • RAG vs 长上下文:长上下文适合单文档深读,但不适合把整个知识库全塞进去。RAG 更省 token,也更适合做权限过滤和引用溯源。
  • RAG vs 传统搜索:传统搜索给你一堆链接,你自己读;RAG 是先检索,再让模型做跨文档整合,直接给你一个可读答案。

常见失败场景

  • 召回不到:往往不是模型不行,而是文档解析坏了、chunk 切断了语义、metadata 没打好,或者用户问题太口语化,需要 query rewrite / multi-query / HyDE。
  • 召回很多但答得还是差:通常是没做 rerank,把噪声一起喂给模型了。Top-K 不是越大越好,要区分 recall top-k、rerank top-n、context top-n。
  • 答案看着流畅但不忠实:本质是证据边界没收紧。Prompt 没要求“只基于上下文回答”或者没设计拒答机制,就容易幻觉。
  • 线上越调越玄学:没有评测闭环。生产上至少要拆开看召回指标和生成指标,比如 Hit Rate@K、Context Precision、Faithfulness、Citation Accuracy,而不是只靠“我感觉好多了”。

一个面试里很好用的总结是:RAG 的上限由数据质量决定,下限由检索策略决定。很多系统失败,不是因为 embedding 模型不够贵,而是前面的解析、切块、重排、上下文工程没做好。

3. 🎯 实战口径

TIP

面试官提问口径:“你项目里的 RAG 到底在解决什么问题?为什么不直接让大模型回答?”

我的高分回答口径: “在我的【苍穹外卖AI客服】项目里,RAG 主要承接的是业务知识密集、规则会变化、又要求答案可追溯的那类问题,比如退款政策、配送规则、FAQ 说明这类场景。 我对 RAG 的理解不是‘接个向量库就完了’,而是先把正确证据找出来,再让大模型基于证据回答。如果直接让 LLM 裸答,它很容易把过期规则、相似规则甚至自己编的内容混在一起,线上风险很高。 所以我们会把知识库先做切块和索引,在线上通过检索把相关片段捞出来,再经过重排和上下文约束后喂给模型。这样做的好处有三个:第一,回答能跟着知识库更新,不用重新训练;第二,能显著降低幻觉;第三,出现争议时我能解释答案是依据哪段资料生成的。 另外我在项目里也很关注RAG 前置短路和链路成本。像 FAQ 类高频问题,我们会先走本地语义缓存,命中后直接返回,避免每次都走完整 RAG 链路;只有缓存没命中时,才进入真正的检索增强生成流程。这个设计本质上是在做分层路由,兼顾准确性、延迟和成本。”


相关链接:[[苍穹外卖AI客服]] | [[黑马点评]]